An increasingly popular type of computer architecture is one that employs virtual machines. One or more computing devices host one or more virtual machines, each of which can correspond to a different end user. Each end user uses a terminal, or other type of client computing device that is communicatively connected to the computing devices, to provide input to a virtual machine and to receive output from the virtual machine. Processing of the input to generate the output, however, is handled by the computing devices that host the virtual machines. Each virtual machine has its own dedicated copy of an operating system, which is referred to as a guest operating system and that is installed at the computing devices. The terminals or other types of client computing devices thus perform limited or no processing functionality.